package cn.tedu.spring.security;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Spring Security 是一个专注于为Java应用程序提供认证和授权的框架
 * Spring Security 的真正强大之处在于它可以很容易的被扩展 以满足客户的需求
 *  --对认证和授权的全面和可扩展的支持
 *  --对会话固定，点击劫持，跨站请求等共计的保护
 *  --可以与Spring Web MVC集成
 *
 *  安全概念：
 *  Principla（当事人） 执行动作的用户、设备或系统
 *  Authentication(认证) 确定当事人的认证是否有效
 *  Authorization（授权） 决定是否允许某个当事人访问访问某些资源
 *  Authority (权限) 允许访问的权限或者凭证（如角色）
 *  Secured Resource（保护资源） 受保护的资源
 *
 *  密码加密和一般信息加密的区别：
 *  1.一般信息加密：必须可逆，明晚加密为密文，密文可以解密成明文
 *  2.密码加密：单向编码，无需解密，直接比较密文可验证原文，因为不需要解密，所以更加安全。
 *    --密码加密一般消息摘要算法，进行单向不可逆运算
 *    MD5,SHA256,SHA512 属于消息摘要算法，因为具有单向运算，不可以逆向进行运算，非常适用于密码加密！
 *
 */
@SpringBootApplication
public class SpringSecurityApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringSecurityApplication.class, args);
    }

}
